From c57f40c62f264224610bb6287ea52036490178da Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Wed, 14 Mar 2007 23:16:59 +0000 Subject: [PATCH] Added the clear flag to host.dmesg, and added host.get_log. Use these to implement xm dmesg and xm log using the Xen-API. Signed-off-by: Tom Wilkie Signed-off-by: Ewan Mellor --- tools/python/xen/xend/XendAPI.py | 15 ++++++++++++--- tools/python/xen/xm/main.py | 26 +++++++++++++++++++++----- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/tools/python/xen/xend/XendAPI.py b/tools/python/xen/xend/XendAPI.py index 62f42e8e02..7d3e29e693 100644 --- a/tools/python/xen/xend/XendAPI.py +++ b/tools/python/xen/xend/XendAPI.py @@ -661,7 +661,8 @@ class XendAPI(object): ('shutdown', None), ('add_to_other_config', None), ('remove_from_other_config', None), - ('dmesg', 'String')] + ('dmesg', 'String'), + ('get_log', 'String')] host_funcs = [('get_by_name_label', 'Set(host)')] @@ -737,8 +738,16 @@ class XendAPI(object): return xen_api_error(XEND_ERROR_HOST_RUNNING) return xen_api_error(XEND_ERROR_UNSUPPORTED) - def host_dmesg(self, session, host_ref): - return xen_api_success(XendDmesg.instance().info()) + def host_dmesg(self, session, host_ref, clear): + if clear: + return xen_api_success(XendDmesg.instance().clear()) + else: + return xen_api_success(XendDmesg.instance().info()) + + def host_get_log(self, session, host_ref): + log_file = open(XendLogging.getLogFilename()) + log_buffer = log_file.read() + return xen_api_success(log_buffer) def host_get_record(self, session, host_ref): node = XendNode.instance() diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py index 40f9059853..5b78f87530 100644 --- a/tools/python/xen/xm/main.py +++ b/tools/python/xen/xm/main.py @@ -1498,17 +1498,33 @@ def xm_dmesg(args): err("No parameter required") usage('dmesg') - if not use_clear: - print server.xend.node.dmesg.info() + if serverType == SERVER_XEN_API: + if not use_clear: + print server.xenapi.host.dmesg( + server.xenapi.session.get_this_host(),0) + else: + server.xenapi.host.dmesg( + server.xenapi.session.get_this_host(),1) else: - server.xend.node.dmesg.clear() + if not use_clear: + print server.xend.node.dmesg.info() + else: + server.xend.node.dmesg.clear() def xm_log(args): arg_check(args, "log", 0) - - print server.xend.node.log() + + if serverType == SERVER_XEN_API: + print server.xenapi.host.get_log( + server.xenapi.session.get_this_host()) + else: + print server.xend.node.log() def xm_serve(args): + if serverType == SERVER_XEN_API: + print "Not supported with XenAPI" + sys.exit(-1) + arg_check(args, "serve", 0) from fcntl import fcntl, F_SETFL -- 2.30.2